package com.sky.annotation;

import com.sky.enumeration.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解，用于标识某个方法需要进行功能字段的填充
 */
//@Target(ElementType.METHOD)//指定注解只能加在方法上
//@Retention(RetentionPolicy.RUNTIME)//保证运行的时候可以通过工具类获取到这个注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {

    OperationType value();
//之前定义了一个枚举类OperationType，在sky-common/src/main/java/com/sky/enumeration/OperationType.java
/*
// 这里的 value()的()是定义注解参数的特殊写法，比如下面的再定义一个加level的整型变量，也要加()
// 就是说使用这个注解时，需要传入一个枚举类OperationType类型的参数，参数命名为value
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {
    OperationType value();
    int level();
}
 */

}
